"""
Python程序设计语言第7周：函数练习
定义 gcd_of 函数，接收两个整数，返回它们的最大公约数，然后调用此函数进行验证
"""
#自己写的
def gcd_of(a, b):
    gcd = a if a < b else b

    while a % gcd != 0 or b % gcd !=0:
        gcd = gcd - 1

    return f"{a}和{b}的最大公约数是{gcd}"


print(gcd_of(20, 10))
print(gcd_of(14, 3))

#上课内容
#第一种
def gcd_of1(m, n):
    #找出 m 和 n 的最大公约数

    if m > n:
        gcd = n
    else:
        gcd = m

    while gcd > 1:
        if m % gcd == 0 and n % gcd == 0:
            break

        #还没找到
        gcd -= 1

    return gcd

print(gcd_of1(20, 10))
print(gcd_of1(14, 3))

#第二种
def gcd_of2(m, n):
    num = m if m < n else n

    for r in range(num, 0, -1):
        if m % r == 0 and n % r ==0:
            break

    return r

print(gcd_of2(20, 10))
print(gcd_of2(14, 3))